package com.ktgj.customer.service;

import java.util.List;
import com.ktgj.customer.domain.Department;
import com.ktgj.customer.domain.dto.DepartmentTreeSelectDTO;
import com.ktgj.customer.domain.vo.DepartmentsVo;

/**
 * 部门Service接口
 * 
 * @author ruoyi
 * @date 2021-07-27
 */
public interface IDepartmentService 
{
    /**
     * 查询部门
     * 
     * @param deptId 部门ID
     * @return 部门
     */
    public Department selectDepartmentById(Long deptId);

    /**
     * 查询部门列表
     * 
     * @param department 部门
     * @return 部门集合
     */
    public List<Department> selectDepartmentList(Department department);

    /**
     * 新增部门
     * 
     * @param department 部门
     * @return 结果
     */
    public int insertDepartment(Department department);

    /**
     * 修改部门
     * 
     * @param department 部门
     * @return 结果
     */
    public int updateDepartment(Department department);

    /**
     * 批量删除部门
     * 
     * @param deptIds 需要删除的部门ID
     * @return 结果
     */
    public int deleteDepartmentByIds(Long[] deptIds);

    /**
     * 删除部门信息
     * 
     * @param deptId 部门ID
     * @return 结果
     */
    public int deleteDepartmentById(Long deptId);

    /**
     * 查询出所有部门用树状显示
     */
    public List<Department> departmentList(Department department);

    public Integer queryEmployeeCountByDeptId(Long deptId);
    int deactivate(Long deptId);

    int enable(Long deptId);

    List<DepartmentTreeSelectDTO> getAll();

    /**
     * 查询员工所在部门（远程）
     * */
    public Department department(Long id);

    /**
     * id获取部门名称（远程）
     * */
    public Department deptName(Long id);

    /**
     * 部门列表
     * */
    public List<Department> departments();
}
